Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

VB 2008+ access database συγκεκριμένα στοιχεία

Îåêßíçóå áðü ôï ìÝëïò ifndef. Τελευταία δημοσίευση από το μέλος ifndef στις 23-03-2009, 21:31. Υπάρχουν 10 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  23-03-2009, 11:33 49529

    VB 2008+ access database συγκεκριμένα στοιχεία

    Γεία σας  αρχικα συγχαρητηρια για την ιστοσελίδα σας

    στο ζουμι :

    είμαι καινούργιος με την VB και έχω να κάνω μια εργασία για την σχολή μου

    αγόρασα το βιβλίο Visual  Basic 2008 Βήμα-Βήμα του Michael Halvorson

    κατάλαβα κάποια πραματάκια αλλά το βιβλίο δεν επεκτείνει στις βάσεισ δεδομένων 

    συγκεκριμένα έχω καταφέρει το εξής:

    1)Μια βάση με έναν πίνακα που έχει 3 στήλες με Πρωτεύον Κλειδί εναν αριθμό  με τις άλλες 2 στήλες να αναφέρονται σε Ονομα και Επίθετο

    2)Εχω καταφέρει να κάνω add new data source-->Microsoft Access 200X database με αυτόματη δημιουργεία dataset

    το πρόβλημα τώρα είναι το εξής

    φτιάχνω ενα textbot το οποίο θέλω να παίρνει τις τιμές απο το πληκτρολόγιο και να τις συγκρίνει  με τις τιμές  μονο απο την πρώτη Στήλη που ειναι το πρωτεύον κλειδί

    αυτό πως γίνεται  :S?

    ευχαριστώ

  •  23-03-2009, 11:39 49531 σε απάντηση της 49529

    Απ: VB 2008+ access database συγκεκριμένα στοιχεία

    ifndef:
    ...

    φτιάχνω ενα textbot το οποίο θέλω να παίρνει τις τιμές απο το πληκτρολόγιο και να τις συγκρίνει  με τις τιμές  μονο απο την πρώτη Στήλη που ειναι το πρωτεύον κλειδί

    ...

    Θα πρέπει να εξηγήσεις αυτό πιο αναλυτικά...


    Vir prudens non contra ventum mingit
  •  23-03-2009, 11:51 49532 σε απάντηση της 49531

    Απ: VB 2008+ access database συγκεκριμένα στοιχεία

    KelMan:
    ifndef:
    ...

    φτιάχνω ενα textbot το οποίο θέλω να παίρνει τις τιμές απο το πληκτρολόγιο και να τις συγκρίνει  με τις τιμές  μονο απο την πρώτη Στήλη που ειναι το πρωτεύον κλειδί

    ...

    Θα πρέπει να εξηγήσεις αυτό πιο αναλυτικά...

     

    πχ απο την βάση έχω τον πίνακα με Ονομα Πελάτες . Ο κάθε πελάτης έχει εναν Κωδικό (Πρωτεύον Κλειδί)

    και θέλω να δίνω τον Κωδικό κάθε Πελάτη μέσα στο textbox και να ελέγχει με την βοηθεία ενός πλήκτρου αν η τιμή που πληκτρολογήθηκε υπάρχει στην βάση

    στην συνέχει να τον ειδοποιεί :

    Οσο αφορα την ειδοποιηση θα χρησιμοποιηθεί η εντολή MSGBOX("") 

     

  •  23-03-2009, 13:32 49536 σε απάντηση της 49532

    Απ: VB 2008+ access database συγκεκριμένα στοιχεία

    Αν θες να δεις αν απλά υπάρχει μια τιμή στη βάση, χρησιμοποίησε την ExecuteScalar().

    Δηλαδή:

    (C# codeStick out tongue)

    public button1_Click(Object sender....)
    {
        _selectCommand.CommandText = @"
    select count(*)
    from Customers
    where customerId = " + txtID.Text; // txtID.Text - το περιεχόμενο του textbox
        if (Convert.ToInt32(_selectCommand.ExecuteScalar()) > 0)
            MessageBox.Show("Υπάρχει στη βάση");
       else
            MessageBox.Show("Δεν υπάρχει στη βάση");
    }
  •  23-03-2009, 14:59 49538 σε απάντηση της 49536

    Απ: VB 2008+ access database συγκεκριμένα στοιχεία

    pap:

    Αν θες να δεις αν απλά υπάρχει μια τιμή στη βάση, χρησιμοποίησε την ExecuteScalar().

    Δηλαδή:

    (C# codeStick out tongue)

    public button1_Click(Object sender....)
    {
        _selectCommand.CommandText = @"
    select count(*)
    from Customers
    where customerId = " + txtID.Text; // txtID.Text - το περιεχόμενο του textbox
        if (Convert.ToInt32(_selectCommand.ExecuteScalar()) > 0)
            MessageBox.Show("Υπάρχει στη βάση");
       else
            MessageBox.Show("Δεν υπάρχει στη βάση");
    }

     

    όπα περίμενε κάπου το έχασα :S

    μέσα το βιβλίο δεν αναφέρει τίποτα για C ή C++ ή C# :S

    πάντως τον κώδικα τον κατάλαβα

    μια άλλη απορία :

    Αυτό μπορεί να γίνει με DataSet,BindingSource και Adapter ?

    ευχαριστώ

  •  23-03-2009, 16:38 49542 σε απάντηση της 49538

    Απ: VB 2008+ access database συγκεκριμένα στοιχεία

    Ναι, κάπως έτσι:
     
    public class Customer
    {
        private SqlConnection _connection;
        private SqlCommand _selectCommand;
        private SqlDataAdapter _dataAdapter;
        private DataSet _dataSet;
    
        public Customer() 
        {
            _dataSet = new DataSet();
            _dataAdapter = new SqlDataAdapter();
            _connection = new SqlConnection(connectionString);
            if (_connection.State == ConnectionState.Closed)
                _connection.Open();
            _selectCommand = new SqlCommand("select * from Customers", _connection);
            _dataAdapter.SelectCommand = _selectCommand;
            _dataAdapter.Fill(_dataSet, "Customers");
            _connection.Close();
        }
    
        public int RecordCount(int custId)
        {
            int count = 0;
            if (_connection.State == ConnectionState.Closed)
                _connection.Open();
            selectCommand.CommandText = @"
    select count(*)
    from Customers
    where customerId = " + custId;
            count = Convert.ToInt32(_selectCommand.ExecuteScalar());
            _connection.Close();
            return count; 
        }
    }
     
    Και αν θες πχ. να πάρεις όλο το table του dataset (σε άλλη περίπτωση, πάντα σε C#), για να το συνδέσεις ας πούμε με ένα DataGrid, γράφεις ένα
     
    public DataTable GetDataSource()
    {
        return _dataSet.Tables["Customers"];
    }
  •  23-03-2009, 17:11 49544 σε απάντηση της 49542

    Απ: VB 2008+ access database συγκεκριμένα στοιχεία

    pap:
    Ναι, κάπως έτσι:
     
    public class Customer
    {
        private SqlConnection _connection;
        private SqlCommand _selectCommand;
        private SqlDataAdapter _dataAdapter;
        private DataSet _dataSet;
    
        public Customer() 
        {
            _dataSet = new DataSet();
            _dataAdapter = new SqlDataAdapter();
            _connection = new SqlConnection(connectionString);
            if (_connection.State == ConnectionState.Closed)
                _connection.Open();
            _selectCommand = new SqlCommand("select * from Customers", _connection);
            _dataAdapter.SelectCommand = _selectCommand;
            _dataAdapter.Fill(_dataSet, "Customers");
            _connection.Close();
        }
    
        public int RecordCount(int custId)
        {
            int count = 0;
            if (_connection.State == ConnectionState.Closed)
                _connection.Open();
            selectCommand.CommandText = @"
    select count(*)
    from Customers
    where customerId = " + custId;
            count = Convert.ToInt32(_selectCommand.ExecuteScalar());
            _connection.Close();
            return count; 
        }
    }
     
    Και αν θες πχ. να πάρεις όλο το table του dataset (σε άλλη περίπτωση, πάντα σε C#), για να το συνδέσεις ας πούμε με ένα DataGrid, γράφεις ένα
     
    public DataTable GetDataSource()
    {
        return _dataSet.Tables["Customers"];
    }

     

    καταλαβαίνω τον κώδικα σου:

    1)δημιουργείς μια νέα Sql εντολή μέσα απο μια Sql σύνδεση

    2)χρησιμοποιείς το dataset για να πάρεισ items

    όμως δεν μπορώ να καταλάβω για ποιο λόγο χρειάστηκε να γίνει η κλάση θα προσπαθήσω να το ψάξω και αλλο

    συγνώμη αν σας έχω πρήξει αλλα είμαι καινουργίος ευχαριστώ

     

  •  23-03-2009, 17:20 49546 σε απάντηση της 49544

    Απ: VB 2008+ access database συγκεκριμένα στοιχεία

    Τις κλάσεις τις χρησιμοποιείς για να σε διευκολύνουν και για να είναι πιο δομημένος, συντηρήσιμος και εύκολα επεκτάσιμος ο κώδικάς σου. Φαντάσου να είχες 50 methods σε ένα αρχείο!!! Δεν θα γινόταν χαμός; Με τον καιρό θα βρίσκεις που και πότε χρειάζεται να κάνεις classes.

    Σου εύχομαι καλή αρχή! Wink

  •  23-03-2009, 17:32 49547 σε απάντηση της 49546

    Απ: VB 2008+ access database συγκεκριμένα στοιχεία

    pap:

    Τις κλάσεις τις χρησιμοποιείς για να σε διευκολύνουν και για να είναι πιο δομημένος, συντηρήσιμος και εύκολα επεκτάσιμος ο κώδικάς σου. Φαντάσου να είχες 50 methods σε ένα αρχείο!!! Δεν θα γινόταν χαμός; Με τον καιρό θα βρίσκεις που και πότε χρειάζεται να κάνεις classes.

    Σου εύχομαι καλή αρχή! Wink

     

    σε ευχαριστώ xD

  •  23-03-2009, 19:22 49552 σε απάντηση της 49529

    Απ: VB 2008+ access database συγκεκριμένα στοιχεία

    Γιά δες εδώ.
    Πιστεύω να σε βοηθήσει.
  •  23-03-2009, 21:31 49563 σε απάντηση της 49552

    Απ: VB 2008+ access database συγκεκριμένα στοιχεία

    ekekakos:
    Γιά δες εδώ.
    Πιστεύω να σε βοηθήσει.

     

    πολύ ενδιαφέροντα τα tutorials  ευχαριστώ θα τα μελετήσω ! :)

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems